// new Promise(()=>{
//     console.log(1)
//     setTimeout(()=>{
//         console.log(20)
//     })
//     console.log(2);
// }).then(value=>{
//     console.log(value);
// })


// function fn(cb){
//     cb(100);
// }
// fn(function (num){
//     console.log(num)
// })


// function fn(){
//     setTimeout(()=>{
//         return 100;
//     })
// }
//
// console.log(fn());


// 箭头函数
// // const fn = v => v;
// const fn = v => v;
// console.log(fn(100));// 100
//
// const fn2 = ()=> ({a:1});
// console.log(fn2());


// const arr = [1,2,3,4];
// 1- 会对数组进行映射（生成一个新的数组，数组的长度与arr相同）
// 2- map方法接收一个回调函数，回调函数接收三个参数
//    2-1:第一个参数是数组的元素
//    2-2:第二个参数是数组的元素所在的下标
//    2-3:第三个参数是当前的数组arr
// 3- 回调函数执行的次数与arr数组长度相同
// 4- 回调函数返回的值即是map生成数组的元素
// [undefined,undefined,undefined,undefined]
// const arr2 = arr.map(function(item,index,arr){
//     // 隐式返回undefined
//     console.log(item,index,arr);
// });
// console.log(arr2);//  [undefined,undefined,undefined,undefined]



// const arr2 = arr.map(function(item,index,arr){
//     return item+100;
// });
// console.log(arr2);// [101,102,103,104]


// const arr2 = arr.map(item=>{
//     return item+100;
// });
// console.log(arr2);


// const arr2 = arr.map(item=>item+100);
// console.log(arr2);

// const arr2 = arr.map(item=>(
//     item+100
// ));
// console.log(arr2);


// 三个
const arr = [1,2,3,4];
// const arr2 = arr;
// arr2.push(100);
// console.log(arr);

// const arr2 = [...arr];// 复制数组
// console.log(arr === arr2);// false
// arr.push(100);
// console.log(arr2);

// const arr2 = [6,7,8];// 合并数组
// const arr3 = [
//     ...arr,
//     ...arr2
// ]
// console.log(arr3);

// const obj = {
//     a:1,
//     b:2,
//     c:3
// }
// const obj2 = {...obj};
// const obj3 = {
//     userName:"laowang",
//     age:80
// }
// console.log({
//     ...obj,
//     ...obj3,
//     sex:"男"
// });

//
// function fn(...param){
//     // console.log(arguments.map())
//     console.log(param.map(item=>item+100))
// }
// fn(1,2,3,4,5);


function fn(){
    console.log(a);
}

// console.log(a);
let a = 100;
fn();

